Generating compositions

ABSTRACT

Implementations generally relate to generating compositional media content. In some implementations, a method includes receiving a plurality of photos from a user, and determining one or more composition types from the photos. The method also includes generating compositions from the selected photos based on the one or more determined composition types. The method also includes providing the one or more generated compositions to the user.

BACKGROUND

Social network systems often enable users to upload photos and to createphoto albums. Social network system also enables users to share photoswith each other. For example, users can share photos with friends andfamily, which provides enjoyable and bonding experiences among users ofsocial network systems. A user can create a photo album that isassociated with the user's profile. As owner of the photo album, theuser can then allow other users to view the photo album when visitingthe photo section of the user's profile.

SUMMARY

Implementations generally relate to generating compositions. In someimplementations, a method includes receiving a plurality of photos froma user, and determining one or more composition types from the photos.The method also includes generating compositions from the selectedphotos based on the one or more determined composition types. The methodalso includes providing the one or more generated compositions to theuser.

With further regard to the method, in some implementations, the one ormore composition types include face compositions. In someimplementations, the one or more composition types include high dynamicrange compositions. In some implementations, the one or more compositiontypes include panorama compositions. In some implementations, the one ormore composition types include photo booth compositions. In someimplementations, the determining of the one or more composition typesincludes clustering the photos based on one or more clustering criteria.In some implementations, the generating of compositions includes:selecting a first photo from the plurality of photos, where the selectedphoto includes an image of a face, where the face in the first photoincludes at least one first element, and where, in the first photo, theat least one first element lacks a first desired characteristic;selecting a second photo from the plurality of photos, where the secondphoto includes an image of the face, where the face in the second photoincludes the at least one first element, and where, in the second photo,the at least one first element has the first desired characteristic; andreplacing the first element of the first photo with the first element ofthe second photo. In some implementations, the generating ofcompositions includes: selecting photos from the plurality of photos,where the selected photos include a target subject matter, and where theselected photos are captured at different exposure levels; andgenerating a high dynamic range composition of the target subject matterbased on exposure level information from the selected photos. In someimplementations, the generating of compositions includes selectingphotos from the plurality of photos, where the selected photos areassociated with a location; and combining the photos into a panoramacomposition of the location. In some implementations, the generating ofcompositions includes: selecting photos from the plurality of photos,where the selected photos include different target subject matter; andcombining the selected photos into a photo booth composition. In someimplementations, wherein the generating of compositions includesapplying one or more of a merging algorithm and an anti-ghostingalgorithm in a high dynamic range composition.

In some implementations, a method includes receiving a plurality ofphotos from a user, and determining one or more composition types fromthe photos, where the one or more composition types include one or moreof face compositions, high dynamic range compositions, panoramacompositions, and photo booth compositions, and where the determininginclude clustering the photos based on one or more clustering criteria.The method also includes generating compositions from the selectedphotos based on the one or more determined composition types, andproviding the one or more generated compositions to the user. Withfurther regard to the method, in some implementations, the clusteringcriteria include photos taken within a predetermined time period.

In some implementations, a system includes one or more processors, andlogic encoded in one or more tangible media for execution by the one ormore processors. When executed, the logic is operable to performoperations including: receiving a plurality of photos from a user, anddetermining one or more composition types from the photos. The logicwhen executed is further operable to perform operations includinggenerating compositions from the selected photos based on the one ormore determined composition types, and providing the one or moregenerated compositions to the user.

With further regard to the system, in some implementations, the one ormore composition types include one or more of face compositions, highdynamic range compositions, panorama compositions, and photo boothcompositions. In some implementations, to determine the one or morecomposition types, the logic when executed is further operable toperform operations including clustering the photos based on one or moreclustering criteria. In some implementations, to generate compositions,the logic when executed is further operable to perform operationsincluding: selecting a first photo from the plurality of photos, wherethe selected photo includes an image of a face, where the face in thefirst photo includes at least one first element, and where, in the firstphoto, the at least one first element lacks a first desiredcharacteristic; selecting a second photo from the plurality of photos,where the second photo includes an image of the face, where the face inthe second photo includes the at least one first element, and where, inthe second photo, the at least one first element has the first desiredcharacteristic; and replacing the first element of the first photo withthe first element of the second photo. In some implementations, togenerate compositions, the logic when executed is further operable toperform operations including: selecting photos from the plurality ofphotos, where the selected photos include a target subject matter, andwhere the selected photos are captured at different exposure levels; andgenerating a high dynamic range composition of the target subject matterbased on exposure level information from the selected photos. In someimplementations, to generate compositions, the logic when executed isfurther operable to perform operations including: selecting photos fromthe plurality of photos, where the selected photos are associated with alocation; and combining the photos into a panorama composition of thelocation. In some implementations, to generate compositions, the logicwhen executed is further operable to perform operations including:selecting photos from the plurality of photos, where the selected photosinclude different target subject matter; and combining the selectedphotos into a photo booth composition.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of an example network environment,which may be used to implement the implementations described herein.

FIG. 2 illustrates an example simplified flow diagram for generatingcompositions, according to some implementations.

FIG. 3 illustrates an example simplified flow diagram for generating aface composition, according to some implementations.

FIG. 4 illustrates an example photo showing a face having closed eyes,according to some implementations.

FIG. 5 illustrates an example photo where the same face of FIG. 4 hasopen eyes, according to some implementations.

FIG. 6 illustrates an example photo composition, according to someimplementations.

FIG. 7 illustrates an example simplified flow diagram for generating ahigh dynamic range (HDR) composition, according to some implementations.

FIG. 8 illustrates an example photo that has a low exposure level,according to some implementations.

FIG. 9 illustrates an example photo that has a medium-range exposurelevel, according to some implementations.

FIG. 10 illustrates an example photo that has a high exposure level,according to some implementations.

FIG. 11 illustrates an example HDR composition, according to someimplementations.

FIG. 12 illustrates an example simplified flow diagram for generating apanorama composition, according to some implementations.

FIGS. 13A, 13B, 13C, and 13D illustrate example simplified photos ofobjects from different vantage points.

FIG. 14 illustrates an example simplified photo composite, according tosome implementations.

FIG. 15 illustrates an example simplified panorama composition,according to some implementations.

FIG. 16 illustrates an example simplified flow diagram for generating aphoto booth composition, according to some implementations.

FIGS. 17A and 17B illustrate example simplified photo boothcompositions, according to some implementations.

FIG. 18 illustrates a block diagram of an example server device, whichmay be used to implement the implementations described herein.

DETAILED DESCRIPTION

Implementations described herein generate compositional media content.In various implementations, a system receives photos from a user. Thesystem then determines one or more composition types from the photos. Invarious implementations, the one or more composition types may includeface compositions, high dynamic range compositions, panoramacompositions, and photo booth compositions. In some implementations, todetermine the one or more composition types, the system may cluster thephotos based on one or more clustering criteria. The system thengenerates compositions from the selected photos based on the one or moredetermined composition types. The system then provides the one or moregenerated compositions to the user.

In some implementations, the system generates compositions involvingface compositions. For example, the system may select a first photo fromthe plurality of photos, where the selected photo includes an image of aface, where the face in the first photo includes at least one firstelement (e.g., a mouth), and where, in the first photo, the at least onefirst element lacks a first desired characteristic (e.g., smiling). Thesystem then identifies a second photo from the plurality of photos,where the second photo includes an image of the face, where the face inthe second photo includes the first element, and where, in the secondphoto, the first element has the first desired characteristic. Thesystem then replaces the first element of the first photo with the firstelement of the second photo.

In some implementations, the system generates compositions involvinghigh dynamic range images. For example, the system may select photosfrom the plurality of photos, where the selected photos include a targetsubject matter, and where the selected photos are captured at differentexposure levels. The system then generates a high dynamic rangecomposition of the target subject matter based on exposure levelinformation from the selected photos.

In some implementations, the system generates compositions involvingpanorama compositions. For example, the system may select photos fromthe plurality of photos, where the selected photos are associated with alocation. The system then combines the photos into a panoramacomposition of the location.

In some implementations, the system generates compositions involvingphoto booth compositions. For example, the system may select photos fromthe plurality of photos, where the selected photos include differenttarget subject matter. The system then combines the selected photos intoa photo booth composition.

FIG. 1 illustrates a block diagram of an example network environment100, which may be used to implement the implementations describedherein. In some implementations, network environment 100 includes asystem 102, which includes a server device 104 and a social networkdatabase 106. In various implementations, the term system 102 and phrase“social network system” may be used interchangeably. Network environment100 also includes client devices 110, 120, 130, and 140, which maycommunicate with each other via system 102 and a network 150.

For ease of illustration, FIG. 1 shows one block for each of system 102,server device 104, and social network database 106, and shows fourblocks for client devices 110, 120, 130, and 140. Blocks 102, 104, and106 may represent multiple systems, server devices, and social networkdatabases. Also, there may be any number of client devices. In otherimplementations, network environment 100 may not have all of thecomponents shown and/or may have other elements including other types ofelements instead of, or in addition to, those shown herein.

In various implementations, users U1, U2, U3, and U4 may communicatewith each other using respective client devices 110, 120, 130, and 140.For example, users U1, U2, U3, and U4 may interact with each other,where respective client devices 110, 120, 130, and 140 transmitcompositional media content to each other.

FIG. 2 illustrates an example simplified flow diagram for generatingcompositions, according to some implementations. In variousimplementations, system 102 may generate compositions in a socialnetwork system, or anywhere visual media may be used and/or viewed.Referring to both FIGS. 1 and 2, a method is initiated in block 202,where system 102 receives photos from a user. In variousimplementations, the photos may be received when the user uploads thephotos to system 102 or after the user adds the photos to one or morephoto albums. In some implementations, system 102 may enable a cameradevice (e.g., smart phone) of the user to automatically upload photos tosystem 102 as the camera device captures photos.

In block 204, system 102 determines one or more composition types fromthe photos. In some implementations, system 102 automatically determinesthe composition types from the photos upon receiving the photos. Thecomposition types may include one or more of face compositions, highdynamic range compositions, panorama compositions, and/or photo boothcompositions. As described in more detail below, system 102 determineswhich types of compositions that can be generated from the photos. To doso, in various implementations, system 102 analyzes the photos todetermine which photos are appropriate for each type of composition. Forexample, photos captured in burst mode (e.g., photos captured in quicksuccession) of a similar scene such as a landscape at the same exposuremight make a visually appealing panoramic photo. However, some of thesephotos may not be appropriate for an HDR image since the photos weretaken with the same exposure.

In various implementations, to determine the composition types that canbe made from the photos, system 102 utilizes recognition algorithms tofind photos appropriate for different composition types. For example,system 102 may utilize recognition algorithms to determine visualsimilarity among photos (e.g., similarity of any persons in the photos),and may utilize exchangeable image file format (EXIF) metadata todetermine the elapsed time between photos. Example implementations ofrecognition algorithms are described in more detail below.

In some implementations, system 102 may use signals from recognitionalgorithms and from EXIF metadata in a hierarchical clusteringalgorithm, with potentially varying constraints per media type, in orderto group constituent photos into photo bursts. In some implementations,system 102 may also use signals from social affinity data in ahierarchical clustering algorithm in order to group constituent photosinto photo bursts.

In various implementations, to determine the composition types that canbe made from the photos, system 102 utilizes clustering algorithms tocluster the photos based on one or more clustering criteria. Forexample, in some implementations, the clustering criteria may includephotos taken within a predetermined time period. In someimplementations, the clustering criteria may include photos havingsimilar content. In some implementations, the clustering criteria mayinclude photos having the same content.

In various implementations, system 102 combines these example clusteringcriteria and other clustering criteria in a variety of ways inclustering algorithms to determine the composition types that can bemade from the photos.

In some implementations, if system 102 clusters two or more photos thathave the same content, system 102 may determine that the two or morephotos may be used to generate a face composition. For example, system102 may determine that photos in a photo burst having the same face arecandidate photos for a face composition.

In some implementations, if system 102 clusters two or more photos thathave the same content and are captured in series at different exposurelevels, system 102 may determine that the two or more photos may be usedto generate a high dynamic range (HDR) composition.

In some implementations, if system 102 clusters two or more photos thathave similar content, system 102 may determine that the two or morephotos may be used to generate a panorama composition.

In some implementations, if system 102 clusters two or more photos thathave different content, system 102 may determine that the two or morephotos may be used to generate a photo booth composition.

Referring again to FIG. 2, in block 206, system 102 generates one ormore compositions from the selected photos based on the one or moredetermined composition types. In various implementations, to generatecompositions from the photos, system 102 selects candidate photos fromthe group of photos based on the determined composition types.Continuing with the example above, system 102 may select photos in aphoto burst with multiple faces and one ore more non-smiling and/oreyes-closed faces for face compositions. More example implementations ofselecting photos for various composition types are described in moredetail below in connection with descriptions of each composition type.

Continuing with the example above, system 102 may generate a facecomposition using selected photos from a group of photos to generate aface composition. More example implementations for generatingcompositions are described in more detail below in connection withdescriptions of each composition type.

In block 208, system 102 provides the one or more generated compositionsto the user. For example, in some implementations, system 102 may send amessage to the user indicating that system 102 has generated acomposition and has added the composition to the user's upload stream orphoto album. In various implementations, system 102 may generate andcause a visual badge to overlay an image associated with thecomposition. In various implementations, system 102 may generate andcause a second or combined visual badge to overlay the composition,where the visual badge indicates the type of composition (e.g., a facecomposition, HDR composition, panorama composition, photo boothcomposition, etc.).

FIG. 3 illustrates an example simplified flow diagram for generating aface composition, according to some implementations. Referring to bothFIGS. 1 and 3, a method is initiated in block 302, where system 102selects a first photo from the group of photos, where the selected photoincludes an image of a face. In various implementations, the face in thefirst photo includes one or more elements (e.g., eyes, mouth, etc.),where at least one element in the first photo lacks a predetermineddesired characteristic. For example, the eyes in the first photo may beclosed.

FIG. 4 illustrates an example photo 400 showing a face 402 having closedeyes 404, according to some implementations. In some implementations,closed eyes are undesired, because they lack a predetermined desiredcharacteristic (e.g., being open).

In block 304, system 102 selects a second photo from the group ofphotos, where the second photo includes an image of the face. In variousimplementations, the face in the second photo includes correspondingelements (e.g., eyes, mouth, etc.), where an element in the second photohas the predetermined desired characteristic. For example, the eyes inthe second photo may be open.

FIG. 5 illustrates an example photo 500 where the same face 402 of FIG.4 has open eyes 504, according to some implementations. In someimplementations, open eyes are desired because they have a predetermineddesired characteristic (e.g., being open).

In block 306, system 102 replaces the element that lacks thepredetermined desired characteristic in the first photo with the elementthat has the predetermined desired characteristic from the second phototo generate a face composition. For example, system 102 may use face 402from the first photo as a base image and replace closed eyes 404 in thefirst photo with open eyes 504 from the second photo.

FIG. 6 illustrates an example face composition 600, according to someimplementations. As shown, FIG. 6 shows the same face 402 from the firstphoto having open eyes 504 from the second photo. As such, facecomposition 600 has the desired characteristic (e.g., eyes being open).

For ease of illustration, the example above emphasizes one type ofelement (e.g., eyes) and one desired characteristic (e.g., being open).Other types and any number of elements and associated desiredcharacteristics are possible. Also, in some implementations, a givenphoto may have some elements that lack desired characteristics and someelements that have desired characteristics. As such, system 102 may usea combination of elements with desired characteristics to generate aface composition having the desired characteristics.

For example, referring again to FIG. 4, face 402 has closed eyes 404(undesired) and has a smiling mouth 406 that is smiling (desired).Referring again to FIG. 5, face 402 has open eyes 504 (desired) and hasa non-smiling mouth 506 (lacking a desired characteristic of smiling).

Similar to the resulting face composition 600 of FIG. 6, system 102 maygenerate a face composition from any number of photos and from anycombination of photos in order to for the face composition to haveelements with desired characteristics. For example, if there aremultiple faces in a given face composition, system 102 may implement thesteps described above to ensure that everyone has their eyes open andthat everyone is smiling.

In various implementations, system 102 detects faces in each image, andpasses each facial region and each facial feature through a set computervision classifiers of a facial recognition algorithm to determine eachperson's emotion, face pose (direction), and whether their eyes areopen, etc. In various implementations, the desired characteristics arepredetermined. In some implementations, system 102 may determine anoverall score for facial region and facial feature, where elementshaving predetermined desired characteristics are given relatively higherscores than elements that lack the predetermined desiredcharacteristics.

In addition, system 102 performs facial clustering across each photousing a clustering algorithm to determine which faces belong to the sameperson. In some implementations, system 102 selects one reference photoas the base image, and higher quality faces from other photos are copiedand pasted over the faces in the base image. In some implementations,the pasted face is scaled and positioned to best fit in the base image.In some implementations, system 102 may apply blending techniques tominimize visual artifacts from the overlay.

Digital images are typically captured at one exposure level, which isapplied to an entire image. High dynamic range (HDR) compositions aremultiple photo composites of substantially the same image, where thephoto composites are captured at different exposure levels. HDRcomposites are generally more detailed and/or have more optimal contrastthan the photos used in constructing the HDR composition.

FIG. 7 illustrates an example simplified flow diagram for generating anHDR composition, according to some implementations. Referring to bothFIGS. 1 and 7, a method is initiated in block 702, where system 102selects photos from the group of photos, where the selected photosinclude a target subject matter and where the selected photos arecaptured in series at different exposure levels. For example, the targetsubject matter may be a scene, where the scene may include variousobjects (e.g., monuments, people, etc.).

FIG. 8 illustrates an example photo 800 that has a low exposure level,according to some implementations. As shown, photo 800 includes imagesof two people 802 and 804, a pyramid 806, and clouds 808. In thisexample, the sky portion of photo 800 is much brighter than thelandscape and the people. Photo 800 is underexposed and appears darkexcept for the sky, which is within an optimal range of contrast anddetail. As such, the sky portion of photo 800 may be a good candidatefor an HDR composition of this scene. The dark portions of photo 800 mayalso be good candidates for dark shadows in an HDR composition of thisscene.

FIG. 9 illustrates an example photo 900 that has a medium-range exposurelevel, according to some implementations. As shown, photo 900 includesimages of two people 802 and 804, pyramid 806, which appear somewhat lowcontrast due to the sky being overexposed and the landscape and peoplebeing underexposed. The mid-tones are within an optimal range of detailand may be good candidates for mid-tones in an HDR composition of thisscene.

FIG. 10 illustrates an example photo 1000 that has a high exposurelevel, according to some implementations. As shown, photo 1000 includesimages of two people 802 and 804, pyramid 806, and clouds 808, whichappear light and lacking in detail due being overexposed. Photo 1000'shighlights are within an optimal range, and may be utilized in highlightareas in an HDR composition of this scene.

Referring again to FIG. 7, in block 704, system 102 generates an HDRcomposition of the target subject matter based on exposure levelinformation from the selected photos.

In various implementations, to generate an HDR composition, system 102first stabilizes, or “rectifies,” photos 800, 900, and 1000. In someimplementations, system 102 may also normalize photos 800, 900, and 1000to account for the varying exposure levels between photos. In variousimplementations, system 102 then applies one or more of a mergingalgorithm, a tone-mapping algorithm, and an anti-ghosting algorithm inorder to merge the exposure levels from the constituent photos 800, 900,and 1000 into a new photo with a high dynamic range image with a largebit depth. In some implementations, system 102 may then convert the HDRcomposition to a standard bit-depth image with additional tone-mappingand/or quantization.

FIG. 11 illustrates an example HDR composition 1100, according to someimplementations. As shown, HDR composition 1100 shows two people 802 and804, pyramid 806, and clouds 808 having a combination of the exposureinformation of photos 800, 900, and 1000 of respective FIGS. 8, 9, and10. The particular combination of exposure information will vary andwill depend on the specific implementation.

Other photographic scenarios are also possible (e.g., low lighting withinsufficient or excessive flash illumination, backlit subject matter,subjects moving at different speeds within a photo, etc.).

FIG. 12 illustrates an example simplified flow diagram for generating apanorama composition, according to some implementations. Referring toboth FIGS. 1 and 12, a method is initiated in block 1202, where system102 selects photos from the group of photos, where the selected photosare associated with a location. In some implementations, system 102 mayselect photos that are captured in a similar time window and that sharelocally-overlapping regions.

FIGS. 13A, 13B, 13C, and 13D illustrate example simplified photos ofobjects in a location. FIG. 13A shows a tree 1302. FIG. 13B shows tree1302, a pyramid 1304, and a portion of a pyramid 1306. FIG. 13C alsoshows pyramid 1304 and a portion of pyramid 1306.

FIG. 13D shows pyramids 1304 and 1306. For ease of illustration, FIGS.13A, 13B, 13C, and 13D show three objects from different vantagespoints. A given location or scene may have many more objects, dependingon the particular scenario. Furthermore, system 102 may collect numerousphotos of a given object from many different vantage points.

Referring again to FIG. 12, in block 1204, system 102 combines thephotos into a panorama composition of the location. In variousimplementations, system 102 applies an algorithm that aligns,normalizes, and stitches the photos of FIGS. 13A, 13B, 13C, and 13D intoa single panorama composition. In various implementations, system 102may generate a confidence measure which can subsequently be used toidentify and optionally reject poor quality panoramas.

FIG. 14 illustrates an example simplified photo composite 1400,according to some implementations. As shown, photo composite 1400includes a combination of photos 1402, 1404, 1406, and 1408, whichcorrespond to the photos of FIGS. 13A, 13B, 13C, and 13D. Photocomposite 1400 shows tree 1302, pyramid 1304, and pyramid 1306. Asshown, the photos are registered/aligned into photo composite 1400.

FIG. 15 illustrates an example simplified panorama composition 1500,according to some implementations. As shown, the photos of FIGS. 13A,13B, 13C, and 13D are blended into a single photo composite 1500 of thelocation. As shown, photo composite 1500 includes tree 302, pyramid 304,and pyramid 306, which were originally from the different photos ofFIGS. 13A, 13B, 13C, and 13D.

For ease of illustration, photo composite 1500 of FIG. 15 shows a simplepanorama composition. Depending on the number of objects captured,photos available, points of view, etc., panorama compositions oflocations may provide various types panoramas of varying complexities(e.g., 360 degree panoramas, cylindrical panoramas, spherical panoramas,cubical panoramas, etc.). The specific panorama compositions generatedwill depend on the specific implementation.

FIG. 16 illustrates an example simplified flow diagram for generating aphoto booth composition, according to some implementations. Referring toboth FIGS. 1 and 16, a method is initiated in block 1602, where system102 selects photos from the group of photos, where the selected photosinclude different subject matter (e.g., different faces). In variousimplementations, system 102 selects photos, where one photo shows one ormore faces and/or where different photos show different faces. In block1604, system 102 combines the selected photos into a photo boothcomposition. In various implementations, system 102 generates a photobooth composition by cropping, scaling, and tiling the selected photosinto a new composition.

FIGS. 17A and 17B illustrate example simplified photo booth compositions1700 and 1710, according to some implementations. Referring to FIG. 17A,photo booth composition 1700 includes photos 1702, 1704, 1706, and 1708,each showing a different a person. Photo booth composition 1700 may beconfigured in various ways, depending on the particular implementation.As shown in FIG. 17A, photo booth composition 1700 resembles a group ofphotos out of a photo booth. For ease of illustration, each photo 1702,1704, 1706, and 1708 shows a single face. In some implementations, agiven photo may include two or more faces, depending on the particularimplementation. With regard to a photo with multiple faces, system 102may select the photo where the faces each occupy a predetermined numberof the image pixels (e.g., at least 8% of the image pixels), and wherethe faces are relatively close to one another (e.g., as faces often arein a canonical photo booth photo strip).

Other configurations are possible and will depend on the specificimplementations. For example, photo booth composition 1710 of FIG. 17Bshows another configuration photos 1702, 1704, 1706, and 1708. In someimplementations, photo booth composition 1700 may resemble a comicstrip. In some implementations, photo booth composition 1700 may be acollage of photos. In some implementations, photo booth composition 1700may include decorative elements such as a decorative border.

In various implementations, system 102 notifies the user of thecomposition(s). For example, in some implementations, system 102 maysend a message to the user indicating that system 102 has generated aparticular composition and has added the composition to the user'supload stream or photo album. In various implementations, system 102 maygenerate and cause a visual badge to overlay a given composition. Invarious implementations, system 102 may generate and cause a second orcombined visual badge to overlay the composition, where the visual badgeindicates the type of media that it is (e.g., face composition, HDRcomposition, panorama composition, photo booth composition, etc.).

In some implementations, system 102 may provide a message (e.g., “Thiscomposition was automatically created from the photos you took.”) to theuser when the user moves a pointer (e.g., mouses over) over the visualbadge.

In some implementations, system 102 may allow for some user interactionor feedback. For example, rather than automatically generating acomposition, system 102 may detect photos that would make a composition,then prompt the user to initiate the generation of a face composition,HDR composition, panorama composition, photo booth composition, etc.(e.g., with a single click or selection of a button). In someimplementations, system 102 may recommend appropriate types orcombinations of types of compositions to the user given the availablephotos.

In some implementations, multiple types of compositions described hereinmay be applied to a photo or group of photos. In variousimplementations, system 102 may generate compositions that includedifferent combinations of face compositions, HDR compositions, panoramacompositions, and photo booth compositions, etc. For example, in someimplementations, system 102 may generate a face composition within anHDR composition. In some implementations, system 102 may generate apanorama composition using a combination of HDR compositions and/or facecompositions. Actual combinations will depend on the specificimplementations.

Although the steps, operations, or computations in the methodimplementations described herein may be presented in a specific order,the order may be changed in particular implementations. Other orderingsof the steps are possible, depending on the particular implementation.In some particular implementations, multiple steps shown as sequentialin this specification may be performed at the same time. Also, someimplementations may not have all of the steps shown and/or may haveother steps instead of, or in addition to, those shown herein.

While system 102 is described as performing the steps as described inthe implementations herein, any suitable component or combination ofcomponents of system 102 or any suitable processor or processorsassociated with system 102 may perform the steps described.

In various implementations, system 102 may utilize a variety ofrecognition algorithms to recognize faces, landmarks, objects, etc. inphotos. Such recognition algorithms may be integral to system 102.System 102 may also access recognition algorithms provided by softwarethat is external to system 102 and that system 102 accesses.

In various implementations, system 102 enables users of the socialnetwork system to specify and/or consent to the use of personalinformation, which may include system 102 using their faces in photos orusing their identity information in recognizing people identified inphotos. For example, system 102 may provide users with multipleselections directed to specifying and/or consenting to the use ofpersonal information. For example, selections with regard to specifyingand/or consenting may be associated with individual photos, all photos,individual photo albums, all photo albums, etc. The selections may beimplemented in a variety of ways. For example, system 102 may causebuttons or check boxes to be displayed next to various selections. Insome implementations, system 102 enables users of the social network tospecify and/or consent to the use of using their photos for facialrecognition in general. Example implementations for recognizing facesand other objects are described in more detail below.

In situations in which the systems discussed here collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures collect user information (e.g., information about a user'ssocial network, social actions or activities, profession, a user'spreferences, or a user's current location), or to control whether and/orhow to receive content from the content server that may be more relevantto the user. In addition, certain data may be treated in one or moreways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over how information is collected about the userand used by a content server.

In various implementations, system 102 obtains reference images of usersof the social network system, where each reference image includes animage of a face that is associated with a known user. The user is known,in that system 102 has the user's identity information such as theuser's name and other profile information. In some implementations, areference image may be, for example, a profile image that the user hasuploaded. In some implementations, a reference image may be based on acomposite of a group of reference images.

In some implementations, to recognize a face in a photo, system 102 maycompare the face (i.e., image of the face) and match the face toreference images of users of the social network system. Note that theterm “face” and the phrase “image of the face” are used interchangeably.For ease of illustration, the recognition of one face is described insome of the example implementations described herein. Theseimplementations may also apply to each face of multiple faces to berecognized.

In some implementations, system 102 may search reference images in orderto identify any one or more reference images that are similar to theface in the photo. In some implementations, for a given reference image,system 102 may extract features from the image of the face in a photofor analysis, and then compare those features to those of one or morereference images. For example, system 102 may analyze the relativeposition, size, and/or shape of facial features such as eyes, nose,cheekbones, mouth, jaw, etc. In some implementations, system 102 may usedata gathered from the analysis to match the face in the photo to onemore reference images with matching or similar features. In someimplementations, system 102 may normalize multiple reference images, andcompress face data from those images into a composite representationhaving information (e.g., facial feature data), and then compare theface in the photo to the composite representation for facialrecognition.

In some scenarios, the face in the photo may be similar to multiplereference images associated with the same user. As such, there would bea high probability that the person associated with the face in the photois the same person associated with the reference images.

In some scenarios, the face in the photo may be similar to multiplereference images associated with different users. As such, there wouldbe a moderately high yet decreased probability that the person in thephoto matches any given person associated with the reference images. Tohandle such a situation, system 102 may use various types of facialrecognition algorithms to narrow the possibilities, ideally down to onebest candidate.

For example, in some implementations, to facilitate in facialrecognition, system 102 may use geometric facial recognition algorithms,which are based on feature discrimination. System 102 may also usephotometric algorithms, which are based on a statistical approach thatdistills a facial feature into values for comparison. A combination ofthe geometric and photometric approaches could also be used whencomparing the face in the photo to one or more references.

Other facial recognition algorithms may be used. For example, system 102may use facial recognition algorithms that use one or more of principalcomponent analysis, linear discriminate analysis, elastic bunch graphmatching, hidden Markov models, and dynamic link matching. It will beappreciated that system 102 may use other known or later developedfacial recognition algorithms, techniques, and/or systems.

In some implementations, system 102 may generate an output indicating alikelihood (or probability) that the face in the photo matches a givenreference image. In some implementations, the output may be representedas a metric (or numerical value) such as a percentage associated withthe confidence that the face in the photo matches a given referenceimage. For example, a value of 1.0 may represent 100% confidence of amatch. This could occur, for example, when compared images are identicalor nearly identical. The value could be lower, for example 0.5 whenthere is a 50% chance of a match. Other types of outputs are possible.For example, in some implementations, the output may be a confidencescore for matching.

For ease of illustration, some example implementations described abovehave been described in the context of a facial recognition algorithm.Other similar recognition algorithms and/or visual search systems may beused to recognize objects such as landmarks, logos, entities, events,etc. in order to implement implementations described herein.

Implementations described herein provide various benefits. For example,implementations automatically generate face compositions, high dynamicrange compositions, panorama compositions, and photo booth compositionsthat users can share with their friends. Such implementations require nomanual effort from users, and, in particular, implementations require nouser knowledge of how to create compositions. Implementations describedherein also increase overall engagement among users in a socialnetworking environment.

FIG. 18 illustrates a block diagram of an example server device 1800,which may be used to implement the implementations described herein. Forexample, server device 1800 may be used to implement server device 104of FIG. 1, as well as to perform the method implementations describedherein. In some implementations, server device 1800 includes a processor1802, an operating system 1804, a memory 1806, and an input/output (I/O)interface 1808. Server device 1800 also includes a social network engine1810 and a media application 1812, which may be stored in memory 1806 oron any other suitable storage location or computer-readable medium.Media application 1812 provides instructions that enable processor 1802to perform the functions described herein and other functions.

For ease of illustration, FIG. 18 shows one block for each of processor1802, operating system 1804, memory 1806, I/O interface 1808, socialnetwork engine 1810, and media application 1812. These blocks 1802,1804, 1806, 1808, 1810, and 1812 may represent multiple processors,operating systems, memories, I/O interfaces, social network engines, andmedia applications. In other implementations, server device 1800 may nothave all of the components shown and/or may have other elementsincluding other types of elements instead of, or in addition to, thoseshown herein.

Although the description has been described with respect to particularembodiments thereof, these particular embodiments are merelyillustrative, and not restrictive. Concepts illustrated in the examplesmay be applied to other examples and implementations.

Note that the functional blocks, methods, devices, and systems describedin the present disclosure may be integrated or divided into differentcombinations of systems, devices, and functional blocks as would beknown to those skilled in the art.

Any suitable programming languages and programming techniques may beused to implement the routines of particular embodiments. Differentprogramming techniques may be employed such as procedural orobject-oriented. The routines may execute on a single processing deviceor multiple processors. Although the steps, operations, or computationsmay be presented in a specific order, the order may be changed indifferent particular embodiments.

In some particular embodiments, multiple steps shown as sequential inthis specification may be performed at the same time.

A “processor” includes any suitable hardware and/or software system,mechanism or component that processes data, signals or otherinformation. A processor may include a system with a general-purposecentral processing unit, multiple processing units, dedicated circuitryfor achieving functionality, or other systems. Processing need not belimited to a geographic location, or have temporal limitations. Forexample, a processor may perform its functions in “real-time,”“offline,” in a “batch mode,” etc. Portions of processing may beperformed at different times and at different locations, by different(or the same) processing systems. A computer may be any processor incommunication with a memory. The memory may be any suitableprocessor-readable storage medium, such as random-access memory (RAM),read-only memory (ROM), magnetic or optical disk, or other tangiblemedia suitable for storing instructions for execution by the processor.

What is claimed is:
 1. A method comprising: receiving a plurality ofphotos from a user; determining one or more composition types from thephotos, wherein the one or more composition types include one or more offace compositions, high dynamic range compositions, panoramacompositions, and photo booth compositions, and wherein the determiningcomprises clustering the photos based on one or more clusteringcriteria; generating one or more compositions from the selected photosbased on the one or more determined composition types; and providing theone or more generated compositions to the user.
 2. The method of claim2, wherein the clustering criteria include photos taken within apredetermined time period.
 3. A method comprising: receiving a pluralityof photos from a user; determining one or more composition types fromthe photos; generating one or more compositions from the selected photosbased on the one or more determined composition types; and providing theone or more generated compositions to the user.
 4. The method of claim3, wherein the one or more composition types include face compositions.5. The method of claim 3, wherein the one or more composition typesinclude high dynamic range compositions.
 6. The method of claim 3,wherein the one or more composition types include panorama compositions.7. The method of claim 3, wherein the one or more composition typesinclude photo booth compositions.
 8. The method of claim 3, wherein thedetermining of the one or more composition types comprises clusteringthe photos based on one or more clustering criteria.
 9. The method ofclaim 3, wherein the generating of compositions comprises: selecting afirst photo from the plurality of photos, wherein the selected photoincludes an image of a face, wherein the face in the first photoincludes at least one first element, and wherein, in the first photo,the at least one first element lacks a first desired characteristic;selecting a second photo from the plurality of photos, wherein thesecond photo includes an image of the face, wherein the face in thesecond photo includes the at least one first element, and wherein, inthe second photo, the at least one first element has the first desiredcharacteristic; and replacing the first element of the first photo withthe first element of the second photo.
 10. The method of claim 3,wherein the generating of compositions comprises: selecting photos fromthe plurality of photos, wherein the selected photos include a targetsubject matter, and wherein the selected photos are captured atdifferent exposure levels; and generating a high dynamic rangecomposition of the target subject matter based on exposure levelinformation from the selected photos.
 11. The method of claim 3, whereinthe generating of compositions comprises: selecting photos from theplurality of photos, wherein the selected photos are associated with alocation; and combining the photos into a panorama composition of thelocation.
 12. The method of claim 3, wherein the generating ofcompositions comprises: selecting photos from the plurality of photos,wherein the selected photos include different target subject matter; andcombining the selected photos into a photo booth composition.
 13. Themethod of claim 3, wherein the generating of compositions comprisesapplying one or more of a merging algorithm and an anti-ghostingalgorithm in a high dynamic range composition.
 14. A system comprising:one or more processors; and logic encoded in one or more tangible mediafor execution by the one or more processors and when executed operableto perform operations comprising: receiving a plurality of photos from auser; determining one or more composition types from the photos;generating one or more compositions from the selected photos based onthe one or more determined composition types; and providing the one ormore generated compositions to the user.
 15. The system of claim 14,wherein the one or more composition types include one or more of facecompositions, high dynamic range compositions, panorama compositions,and photo booth compositions.
 16. The system of claim 14, wherein, todetermine the one or more composition types, the logic when executed isfurther operable to perform operations comprising clustering the photosbased on one or more clustering criteria.
 17. The system of claim 14,wherein, to generate compositions, the logic when executed is furtheroperable to perform operations comprising: selecting a first photo fromthe plurality of photos, wherein the selected photo includes an image ofa face, wherein the face in the first photo includes at least one firstelement, and wherein, in the first photo, the at least one first elementlacks a first desired characteristic; selecting a second photo from theplurality of photos, wherein the second photo includes an image of theface, wherein the face in the second photo includes the at least onefirst element, and wherein, in the second photo, the at least one firstelement has the first desired characteristic; and replacing the firstelement of the first photo with the first element of the second photo.18. The system of claim 14, wherein, to generate compositions, the logicwhen executed is further operable to perform operations comprising:selecting photos from the plurality of photos, wherein the selectedphotos include a target subject matter, and wherein the selected photosare captured at different exposure levels; and generating a high dynamicrange composition of the target subject matter based on exposure levelinformation from the selected photos.
 19. The system of claim 14,wherein, to generate compositions, the logic when executed is furtheroperable to perform operations comprising: selecting photos from theplurality of photos, wherein the selected photos are associated with alocation; and combining the photos into a panorama composition of thelocation.
 20. The system of claim 14, wherein, to generate compositions,the logic when executed is further operable to perform operationscomprising: selecting photos from the plurality of photos, wherein theselected photos include different target subject matter; and combiningthe selected photos into a photo booth composition.